package com.lumberer.pay2021.wx.jsapi.refund.entity;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonInclude;
/**
 * 退款订单集合参数
 * @author lumberer
 * @date 2021年9月22日
 */
@JsonInclude(value=JsonInclude.Include.NON_NULL)
public class Refunds {
	/**
	 * 微信订单号
	 */
	private String transaction_id;
	/**
	 * 商户订单号
	 */
	private String out_trade_no;
	/**
	 * 商户系统内部的退款单号，商户系统内部唯一，只能是数字、大小写字母_-|*@ ，同一退款单号多次请求只退一笔。
	 */
	private String out_refund_no;
	/**
	 * 退款原因
	 * 若商户传入，会在下发给用户的退款消息中体现退款原因
	 */
	private String reason;
	/**
	 * 退款结果回调url
	 * 异步接收微信支付退款结果通知的回调地址，通知url必须为外网可访问的url，不能携带参数。 如果参数中传了notify_url，则商户平台上配置的回调地址将不会生效，优先回调当前传的这个地址。
	 */
	private String notify_url;
	/**
	 * 退款资金来源
	 * 若传递此参数则使用对应的资金账户退款，否则默认使用未结算资金退款（仅对老资金流商户适用）
	 * 枚举值：
	 * AVAILABLE：可用余额账户
	 */
	private String funds_account;
	/**
	 * 订单金额信息	
	 */
	private Amount amount;
	/**
	 * 指定商品退款需要传此参数，其他场景无需传递
	 */
	private List<GoodsDetail> goods_detail;
	public String getTransaction_id() {
		return transaction_id;
	}
	public void setTransaction_id(String transaction_id) {
		this.transaction_id = transaction_id;
	}
	public String getOut_trade_no() {
		return out_trade_no;
	}
	public void setOut_trade_no(String out_trade_no) {
		this.out_trade_no = out_trade_no;
	}
	public String getOut_refund_no() {
		return out_refund_no;
	}
	public void setOut_refund_no(String out_refund_no) {
		this.out_refund_no = out_refund_no;
	}
	public String getReason() {
		return reason;
	}
	public void setReason(String reason) {
		this.reason = reason;
	}
	public String getNotify_url() {
		return notify_url;
	}
	public void setNotify_url(String notify_url) {
		this.notify_url = notify_url;
	}
	public String getFunds_account() {
		return funds_account;
	}
	public void setFunds_account(String funds_account) {
		this.funds_account = funds_account;
	}
	public Amount getAmount() {
		return amount;
	}
	public void setAmount(Amount amount) {
		this.amount = amount;
	}
	public List<GoodsDetail> getGoods_detail() {
		return goods_detail;
	}
	public void setGoods_detail(List<GoodsDetail> goods_detail) {
		this.goods_detail = goods_detail;
	}
}
